"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/5/26 9:33
@Description : 
面向对象的三大特征：
继承
1.子类可以继承父类所有的属性和方法，非私有的属性和方法在子类中可以直接访问，私有的属性和方法需要父类提供公开的操作方法
2.Python中Object类是所有其它类的基类(父类) ctrl+h

"""


class Base:
    # 非私有属性
    public_attr = 'public_attr'
    # 私有属性
    __private_attr = 'private_attr'

    # 获取私有属性值
    def get_private_attr(self):
        return self.__private_attr

    #  用于类内部使用  组织用户直接访问  __函数名()  私有方法
    def __private_method(self):
        print('这是一个私有方法')

    def test_private_method(self):
        self.__private_method()


class Aoo(Base):
    pass


if __name__ == '__main__':
    base = Base()
    # 私有化的方法无法直接访问
    # base.__private_method()
    base.test_private_method()

    # 创建Aoo实例对象
    aoo = Aoo()
    print(aoo.public_attr)
    # print(aoo.__private_attr)  # 'Aoo' object has no attribute '__private_attr'
    # 访问父类中公开的方法 实现父类中私有属性的获取
    print(aoo.get_private_attr())
    aoo.test_private_method()
